package com.itheima.d1_extends.demo04;

public class ZiB extends Fu {
    //1.基于Demo02的需求，尝试重写Fu类的show方法（要求：方法名和形参列表必须相同）
    //重写格式校验：在方法上加@Override注解
    @Override
    public void show() {
        System.out.println("ZiB重写的show方法！");
    }

    //2.尝试重写父类的getInstance()方法，这个方法父类返回值类型是Fu
    //子类重写方法时，返回值类型必须小于等于父类的方法返回值类型（约定：父类大于子类）
    /*
    @Override
    public Object getInstance() {
        System.out.println("ZiB类重写的getInstance方法");
        return new Object();
    }
    */

    //3.注意：子类重写父类方法时，访问权限必须大于或者等于父类（private < 缺省 < protected < public）
    //尝试让ZiB重写父类的各个不同级别方法
    //@Override
    //注意：父类的私有方法，子类无法重写
    //重写：指的是子类的功能覆盖了从父类继承过来的功能！但是父类私有的东西不能继承！
    //下面的私有方法属于子类自己的方法，跟父类没有任何关系，谈不上覆盖
    private void privateMthod() {
        System.out.println("子类重写的private级别方法");
    }

    @Override
    //void defaultMethod() {
    //尝试让级别更大一些
    public void defaultMethod() {
        System.out.println("子类重写的缺省级别方法");
    }

    @Override
    //protected void protectedMethod() {
    //尝试用更小级别，代码报错
    //void protectedMethod() {
    public void protectedMethod() {
        System.out.println("子类重写的protected级别方法");
    }
}
